|
|
I recently had some toughts about POV-Ray's texturing system, and tried
to point out some incoherences and suggest some remedies. Please note
that I'm not whining, or requesting anything. These are just toughts
for a possible future. Read it, keep it, throw it, as you feel.
Here's the first of these toughts.
FINISH - Change in material structure
-------------------------------------
What's wrong with "finish"* ? "finish" is at the same hierarchic level
as
"pigment" and "normal", though it works very differently. "pigment" and
"normal" require a pattern and a map, while "finish" just has some
keywords.
Of course, "finish" could get some "finish_map", but since, anyway, a
pattern isn't *required*, it's still incoherent with "pigment" and
"normal".
So, my idea is to put "finish" at the same level as "texture", and
create
a "surface" entity to group both. Also, this require that, inside the
"finish" statement, finish properties are also grouped into separate
entities. Given the recent growth of the "finish" content (thanks to
MegaPOV), having all the keywords 'thrown' in a single statement became
annoying. This would, of course, allow the declaration of the finish
items : finish {reflection {Mirror1} highlights {VeryShiny} ..}
(*note to Warp : I didn't say 'What's wrong with Finnish ?' ;-))
Here is the proposed material structure :
material {
surface {
[pattern - surface_map]
texture {
[pattern - texture_map]
pigment {..}
normal {..}
}
finish {
[pattern - finish_map]
reflection {type .. min .. max .. exponent
..}
highlights {phong .. specular .. blinn ..}
iridescence {irid .. thickness ..}
light {ambient.. brilliance ..}
}
}
interior {
refraction {..}
media {..}
}
}
Post a reply to this message
|
|